home *** CD-ROM | disk | FTP | other *** search
/ Meeting Pearls 2 / Meeting Pearls Vol. II (1995)(GTI - Schatztruhe)[!].iso / Pearls / dev / GUI / GUIFront / Demos / LocalizeTest / frameprefs.c < prev    next >
C/C++ Source or Header  |  1994-10-31  |  6KB  |  195 lines

  1.  
  2. /* FramePrefs.c - The GUI of the 'FramePrefs' section of the GUIFront
  3.  *                preferences editor.
  4.  *
  5.  * Everything prefixed with DEMO_ is exported to Generic.o.
  6.  */
  7.  
  8. #include <libraries/guifront.h>
  9.  
  10. #define CATCOMP_ARRAY
  11. #include "strings.h"
  12.  
  13. /* First, some Gadget ID's */
  14.  
  15. enum
  16. {
  17.     GID_SCREENFONT,
  18.     GID_FONT,
  19.     GID_GETFONT,
  20.     GID_COLOR,
  21.     GID_ALIGNMENT,
  22.     GID_BOLD,
  23.     GID_ITALICS,
  24.     GID_3D,
  25.     GID_CENTERING,
  26. };
  27.  
  28. /* Some data and tag items we'll be needing later */
  29.  
  30. static const struct TagItem txtags[] =
  31. {
  32.     {GTTX_Border, TRUE},
  33.     {TAG_DONE},
  34. };
  35.  
  36. static const struct TagItem getalttags[] =
  37. {
  38.     {ALT_Image, ALTI_GetFont},
  39.     {ALT_AslRequester, TRUE},
  40.     {TAG_DONE},
  41. };
  42.  
  43. /* Note: Localized! */
  44.  
  45. static const ULONG alignmentlabels[] =
  46. {
  47.     MSG_Above,
  48.     MSG_Centered,
  49.     NULL,
  50. };
  51.  
  52. static const struct TagItem alignmenttags[] =
  53. {
  54.     {GTMX_Labels, alignmentlabels},
  55.     {TAG_DONE},
  56. };
  57.  
  58. /* Note: Localized! */
  59.  
  60. static const ULONG centeringlabels[] =
  61. {
  62.     MSG_Left,
  63.     MSG_Center,
  64.     MSG_Right,
  65.     NULL,
  66. };
  67.  
  68. static const struct TagItem centeringtags[] =
  69. {
  70.     {GTMX_Labels, centeringlabels},
  71.     {TAG_DONE},
  72. };
  73.  
  74.  
  75. /* Now, the GadgetSpec's we'll be needing for this GUI */
  76.  
  77. /* Note the extra GS_Localized flag! */
  78.  
  79. static GadgetSpec gadgetspecs[] =
  80. {
  81.     {CHECKBOX_KIND,  0,0,{0,0,0,0, (UBYTE *)MSG_ScreenFont, NULL,GID_SCREENFONT,PLACETEXT_LEFT}, NULL, GS_DefaultTags | GS_Localized},
  82.     {TEXT_KIND,        20,0,{0,0,0,0, (UBYTE *)MSG_Font,       NULL,GID_FONT, PLACETEXT_LEFT}, txtags, GS_DefaultTags | GS_Localized},
  83.     {GETALT_KIND,     0,0,{0,0,0,0, NULL,                    NULL,GID_GETFONT,PLACETEXT_IN}, getalttags, GS_DefaultTags | GS_Localized},
  84.     {PALETTE_KIND,    20,0,{0,0,0,0, (UBYTE *)MSG_Color,      NULL,GID_COLOR,PLACETEXT_LEFT}, NULL, GS_DefaultTags | GS_Localized},
  85.     {MX_KIND,         0,0,{0,0,0,0, NULL,                    NULL,GID_ALIGNMENT, PLACETEXT_RIGHT}, alignmenttags, GS_DefaultTags | GS_Localized},
  86.     {CHECKBOX_KIND,     0,0,{0,0,0,0, (UBYTE *)MSG_Bold,       NULL,GID_BOLD,PLACETEXT_RIGHT}, NULL, GS_DefaultTags | GS_Localized},
  87.     {CHECKBOX_KIND,     0,0,{0,0,0,0, (UBYTE *)MSG_Italics,    NULL,GID_ITALICS,PLACETEXT_RIGHT}, NULL, GS_DefaultTags | GS_Localized},
  88.     {CHECKBOX_KIND,     0,0,{0,0,0,0, (UBYTE *)MSG_3D,         NULL,GID_3D,PLACETEXT_RIGHT}, NULL, GS_DefaultTags | GS_Localized},
  89.     {MX_KIND,         0,0,{0,0,0,0, NULL,                    NULL,GID_CENTERING, PLACETEXT_RIGHT}, centeringtags, GS_DefaultTags | GS_Localized},
  90. };
  91.  
  92. /* Now, we group all of these GadgetSpecs into an array of pointers, so the
  93.  * layout engine can locate gadgets merely by their Gadget IDs.
  94.  */
  95.  
  96. GadgetSpec *DEMO_GadgetSpecList[] =
  97. {
  98.     &gadgetspecs[0], &gadgetspecs[1], &gadgetspecs[2], &gadgetspecs[2],
  99.     &gadgetspecs[3], &gadgetspecs[4], &gadgetspecs[5], &gadgetspecs[6],
  100.     &gadgetspecs[7], &gadgetspecs[8],
  101.     NULL,
  102. };
  103.  
  104. /* Finally, the layout tag list itself. This is where most of the work is
  105.  * done. This list completely describes how the above gadgets are arranged
  106.  * in groups in the GUI.
  107.  */
  108.  
  109. ULONG DEMO_LayoutList[] =
  110. {
  111.     GUIL_Flags, GUILF_PropShare | GUILF_EqualWidth,
  112.  
  113.     GUIL_VertGroup, 1,
  114.         GUIL_Flags, GUILF_PropShare | GUILF_EqualWidth | GUILF_LabelAlign,
  115.  
  116.         GUIL_GadgetSpecID, GID_SCREENFONT,
  117.  
  118.         GUIL_HorizGroup, 0,
  119.             GUIL_Flags, GUILF_PropShare | GUILF_EqualHeight,
  120.             GUIL_GadgetSpecID, GID_FONT,
  121.             GUIL_GadgetSpecID, GID_GETFONT,
  122.         TAG_DONE,
  123.  
  124.         GUIL_GadgetSpecID, GID_COLOR,
  125.     TAG_DONE,
  126.  
  127.     GUIL_HorizGroup, 1,
  128.         GUIL_Flags, GUILF_EqualShare | GUILF_EqualHeight,
  129.         GUIL_VertGroup, 1,
  130.             GUIL_Flags, GUILF_PropShare | GUILF_EqualHeight,
  131.             GUIL_FrameType, GUILFT_Ridge,
  132.             GUIL_FrameHeadlineLoc, MSG_Alignment,  /* Localized! */
  133.             GUIL_GadgetSpecID, GID_ALIGNMENT,
  134.         TAG_DONE,
  135.         GUIL_VertGroup, 1,
  136.             GUIL_Flags, GUILF_PropShare | GUILF_EqualHeight,
  137.             GUIL_FrameType, GUILFT_Ridge,
  138.             GUIL_FrameHeadlineLoc, MSG_Attributes, /* Localized! */
  139.             GUIL_GadgetSpecID, GID_BOLD,
  140.             GUIL_GadgetSpecID, GID_ITALICS,
  141.             GUIL_GadgetSpecID, GID_3D,
  142.         TAG_DONE,
  143.         GUIL_VertGroup, 1,
  144.             GUIL_Flags, GUILF_PropShare | GUILF_EqualHeight,
  145.             GUIL_FrameType, GUILFT_Ridge,
  146.             GUIL_FrameHeadlineLoc, MSG_Centering, /* Localized! */
  147.             GUIL_GadgetSpecID, GID_CENTERING,
  148.         TAG_DONE,
  149.  
  150.     TAG_DONE,
  151.  
  152.     TAG_DONE,
  153. };
  154.  
  155. /* A localized array of NewMenus */
  156.  
  157. struct NewMenu DEMO_NewMenu[] =
  158. {
  159.     {NM_TITLE, (STRPTR)MSG_Project},
  160.         {NM_ITEM, (STRPTR)MSG_Open},
  161.         {NM_ITEM, (STRPTR)MSG_SaveAs},
  162.         {NM_ITEM, NM_BARLABEL},
  163.         {NM_ITEM, (STRPTR)MSG_About},
  164.         {NM_ITEM, NM_BARLABEL},
  165.         {NM_ITEM, (STRPTR)MSG_Quit},
  166.  
  167.     {NM_TITLE, (STRPTR)MSG_Edit},
  168.         {NM_ITEM, (STRPTR)MSG_ResetToDefaults},
  169.             {NM_SUB, (STRPTR)MSG_ThisEntry},
  170.             {NM_SUB, (STRPTR)MSG_AllEntries},
  171.         {NM_ITEM, (STRPTR)MSG_LastSaved},
  172.         {NM_ITEM, (STRPTR)MSG_Restore},
  173.  
  174.     {NM_TITLE, (STRPTR)MSG_Options},
  175.         {NM_ITEM, (STRPTR)MSG_CreateIcons, NULL,CHECKIT | CHECKED},
  176.         {NM_END},
  177. };
  178.  
  179. /* Obligatory version tag */
  180.  
  181. static const char ver[] = "$VER: FramePrefsLoc 1.0 " __AMIGADATE__;
  182.  
  183. /* Now, some globals used by Generic.o during the call to GF_CreateGUIA() */
  184.  
  185. int DEMO_InitialOrientation = GUIL_VertGroup;
  186.  
  187. STRPTR DEMO_AppID       = "FramePrefsLoc";
  188.  
  189. STRPTR DEMO_Version     = "1.0",
  190.        DEMO_LongDesc    = "Demo program - Frame Preferences, localized",
  191.        DEMO_Author      = "Michael Berg",
  192.        DEMO_Date        = __AMIGADATE__;
  193.  
  194. BOOL   DEMO_Backfill    = FALSE;
  195.